System and methods for providing orientation compensation in pointing  devices

ABSTRACT

Axis orientation compensation is provided in a system in which movement of a controlling device is used to control navigational functions of a target appliance by determining which one of plural sides of the controlling device is an active side of the controlling device and by causing navigational functions of the target appliance made relative to at least one of an X, Y, and Z axis of the target appliance to be dynamically aligned with movements of the controlling device made relative to at least one of an A, B, and C axis of the controlling device as a function of the one of the plural sides of the controlling device that is determined to be the active side of the controlling device.

RELATED APPLICATION INFORMATION

This application claims the benefit of and is a continuation of U.S.application Ser. No. 13/761,387, filed on Feb. 7, 2013, whichapplication is incorporated herein by reference in its entirety.

BACKGROUND

Controlling devices, for example remote controls, with multiple surfacesfor use in issuing commands to appliances and the features andfunctionality provided by such controlling devices are known in the art.Traditionally, as disclosed in U.S. Publication No. 2010/0164745, thesurfaces of such controlling devices are provided with user interfaceelements or command keys that are activable to cause the controllingdevice to transmit communications for controlling functional operationsof one or more appliances. Controlling devices that may be used tocontrol navigational functions of an appliance, e.g., to interact withdisplayed menu systems, to browse web pages, to manipulate pointers,and/or to perform other similar activities, are also known. For example,U.S. Pat. Nos. 7,489,299, 6,160,538, 4,977,404, and 5,986,644 eachdisclose a controlling device adapted to transmit communications forcontrolling navigational functions of an appliance.

SUMMARY

The following generally describes an improved system and method forusing a controlling device having multiple surfaces to controlnavigational functions of an appliance. More particularly, the describedsystem and method facilities control of navigational functions of anappliance by functioning to dynamically align an A, B, and C axis of acontrolling device to an X, Y, and Z axis of an appliance based uponwhich of the multiple surfaces of the controlling device is determinedto be the active surface. In this manner, as the controlling device ismoved for the purpose of changing a one of the multiple surfaces of thecontrolling device that is to be placed into the active state, thecontrolling device can be still be conveniently utilized to interactwith displayed menu systems, to browse web pages, to manipulatepointers, and/or to perform other similar activities. In a describedembodiment an accelerometer may be utilized to detect changes inorientation of the controlling device for the purposes described herein.

BRIEF DESCRIPTION OF THE DRAWINGS

For a better understanding of the various aspects of the system andmethod hereinafter described, reference may be had to preferredembodiments shown in the attached drawings in which:

FIG. 1 illustrates an exemplary system in which an exemplary controllingdevice according to the detailed description may be used;

FIG. 2 illustrates the exemplary controlling device of FIG. 1 in greaterdetail;

FIG. 3 illustrates a block diagram of exemplary components of theexemplary controlling device of FIGS. 1 and 2;

FIG. 4 illustrates in flow chart form an exemplary method for detectingmotion of an active input surface of a multi-surfaced controlling deviceand for compensating for the axis orientation of the controlling deviceby the target appliance;

FIG. 5 illustrates in flow chart form an exemplary method for detectingmotion on an active input surface of a multi-surfaced controlling deviceand for compensating for the axis orientation of the controlling deviceby the controlling device itself;

FIG. 6 illustrates an exemplary system in which an accelerometerequipped controlling device adapted to compensate for axis orientationmay be utilized;

FIG. 7 illustrates a further exemplary system in which an accelerometerequipped controlling device adapted to compensate for the axisorientation may be utilized; and

FIG. 8 illustrates a still further exemplary system in which anaccelerometer equipped controlling device adapted to compensate for theaxis orientation may be utilized.

DETAILED DESCRIPTION

FIG. 1 illustrates an exemplary system in which a controlling device 100is configured to control various controllable appliances such as, forexample, a television 102 and a set top box (“STB”) 104. As is known inthe art, the controlling device 100 may be capable of transmittingcommands to the appliances in response to user activation of variouscommand function keys 106,108, 208 (illustrated in FIGS. 1 and 2) usingany convenient IR, RF, Point-to-Point, or networked protocol, to causethe appliances to perform operational functions. When using IR, it maybe desirous to utilize multiple IR LEDs such as described in commonlyassigned, U.S. patent application Ser. No. 13/679,131, filed on Nov. 16,2012, the disclosure of which is incorporated herein by reference in itsentirety. While illustrated in the context of a television 102 and STB104, it is to be understood that controllable appliances may include,but need not be limited to, televisions, VCRs, DVRs, DVD players, cableor satellite converter set-top boxes (“STBs”), amplifiers, CD players,game consoles, home lighting, drapery, fans, HVAC systems, thermostats,personal computers, etc.

Turning to FIG. 2, an exemplary controlling device 100 having endsurfaces 210 and 211 and multiple side surfaces 202, 204, and 206 havingelements for receiving user input is illustrated. By way of example, thefirst side surface 202 comprises command function keys 106, the secondside surface 204, located to the right of the first side surface,comprises an alphanumeric keyboard 108 arranged in a conventional“qwerty” manner, and the third side surface 206, located to the left ofthe first side surface 202, comprises additional command function keys208. In such a three-sided embodiment, a motion sensor, such as anaccelerometer, gyroscope, or the like, may be used to generate anorientation signal for use in determining which side surface 202, 204 or206 of the controlling device 100 is generally facing upwards or towardsthe user, e.g., which surface is considered to be the active surface ofthe controlling device 100, whereupon operational software can functionto correspondingly align the axes of the controlling device 100 (e.g.,the A, B, and C axes) to the axes of a target appliance (e.g., the X, Y,and Z axes). For example, in an exemplary embodiment, when the firstside 202 of the controlling device 100 is the active surface, a userwill generally hold the controlling device 100 in an orientation asillustrated in FIG. 6 whereby the C axis of the controlling device (inthis example the longitudinal axis of the controlling device 100) willbe generally pointing towards the target device (e.g., be generallyaligned with the Z-axis of the target device) and, when the second side204 of the controlling device 100 is the active surface, a user willgenerally hold the controlling device 100 in an orientation asillustrated in FIG. 7 whereby the C axis of the controlling device willbe generally oriented parallel to the target device (e.g., be generallyaligned with the X-axis of the target device). It will be understoodthat such orientations are not required and the examples illustratedherein are therefore not intended to be limiting in any manner.

With reference to FIG. 3, for use in commanding the functionaloperations of one or more appliances, the controlling device 100 mayinclude, as needed for a particular application, a processor 300 coupledto a ROM memory 304; a RAM memory 302; one or more key matrices324,326,328 as required to support keys 208,106,108 on each of themultiple input surfaces (e.g., hard keys, soft keys such as a touchsensitive surface overlaid on a liquid crystal (LCD), and/or anelectroluminescent (EL) display); one or more transmission circuit(s)and/or transceiver circuit(s) 308,310 (e.g., IR and/or RF); anon-volatile read/write memory 306; means 322 to provide visual and/oraudible feedback to the user (e.g., one or more LEDs, LCD display,speaker, piezoelectric buzzer, or the like); a power source 312; aninput/output port 320 such as a serial interface, USB port, modem,Zigbee, WiFi, or Bluetooth transceiver, etc.; one or more means (notshown) for backlighting areas of touchpad 330 and/or key matrices324,326,328; means 318 for use in determining the motion and/ororientation of controlling device 100, for example an accelerometer,gyroscope, etc.; and clock and timer logic 314 with associated crystalor resonator 316.

As will be understood by those skilled in the art, some or all of thememories 302, 304, 306 may include executable instructions that areintended to be executed by the processor 300 to control the operation ofthe remote control 100 (collectively, the operational software), as wellas data which serves to define to the operational software the necessarycontrol protocols and command values for use in transmitting commandsignals to controllable appliances (collectively, the command data). Tocause the controlling device 100 to perform an action, the controllingdevice 100 may be adapted to be responsive to events, such as a senseduser interaction with the key matrices 324,326,328, touchpad 330,movement of the controlling device 100, etc. In response to an event,appropriate operational software instructions within the program memorymay be executed.

Turning to FIG. 4, in a first exemplary embodiment the operationalsoftware of controlling device 100 uses data derived from the sensor 318to detect the orientation of controlling device 100 to thereby determinewhich side surface 202, 204, and 206 is considered to be the activesurface of the controlling device 100. As will be appreciated, basedupon which side surface 202, 204, 206 is detected as being the activesurface of the controlling device 100, the orientation of thecontrolling device 100 relative to target appliance can be inferred. Forexample, when side surface 202 of the controlling device 100 is sensedas being the active side surface of the controlling device 100 it can beinferred that the controlling device 100 will be generally used in anoriented relative to the target appliance as shown in FIG. 7 and whenside surface 204 of the controlling device 100 is sensed as being activeside surface of the controlling device 100 it can be inferred that thecontrolling device 100 will be generally used in an orientation orientedrelative to the target appliance as shown in FIG. 6. Based upon thisinformation the controlling device 100 can inform the target appliancethat the target appliance needs to adjust any axis-referenced pointingdata that is being received by the target appliance from the controllingdevice 100 as appropriate to compensate for the current orientation ofthe controlling device 100.

More particularly, the motion of the controlling device 100 is detected400 by the sensor 318 and, when it is sensed that the controlling device100 has been rotated 402 to the right or to the left to a degree thatindicates that the active side surface 202, 204, 206 of the remotecontrol 100 has changed 404 (e.g., the controlling device 100 is sensedto have rotated past a predetermined, threshold angle) and, therefore,that pointer axis compensation is needed 406, a signal is transmitted408 to the target appliance by the controlling device 100 for thepurpose of indicating to the target appliance that the target appliancewill need to perform pointer axis compensation with respect to anyaxis-referenced navigational data that is being sent to the targetappliance by the controlling device 100. Thus, when a data communication410 from controlling device 100 is received by a target appliance andthe data communication 410 includes data indicative of an instructionfor the target appliance to perform pointer axis compensation, thetarget appliance will initiate appropriate processes or actions 416necessary to perform the indicated function, e.g., the target applianceoperation software executes the command to align data indicative ofmovement of the controlling device relative to the A, B, and C axes ofthe controlling device 100 as received from the controlling device 100to the X, Y, and Z axes of the target appliance to compensate for whichside surface 202,204,206 of the controlling device 100 is now active. Ifthe command is not a pointer axis compensation type, at step 414 theappropriate processes or actions necessary to perform the indicatedfunction are initiated within the target appliance, and processing ofthe received message is complete. At step 418 the operational softwareof the host appliance may also examine the remaining contents of theinstruction queue and, if the instruction queue is empty, processing ofthe received message may be considered to be complete. While describedabove in the context of a separate orientation adjustment commandtransmitted from a controlling device 100 to a target appliance, it willbe appreciated that in alternate embodiments other techniques forcommunicating this information may be employed. For example, rather thantaking the form of a separate transmission, orientation data may beembedded into the command data comprising each regularnavigation/pointer output, for example by way of a predetermined bitfield within each transmitted data packet.

With reference to FIG. 5, in a second exemplary embodiment theoperational software of controlling device 100 uses data derived fromthe sensor 318 to detect the orientation of controlling device 100 tothereby determine which side surface 202, 204, and 206 is considered tobe the active surface of the controlling device 100. Based upon thisinformation the controlling device 100 will itself adjust anyaxis-referenced pointing data that is being transmitted to the targetappliance as appropriate to compensate for the current orientation ofcontrolling device 100. More particularly, the motion of the controllingdevice 100 is detected 500 by the sensor 318 and, when it is sensed thatthe controlling device 100 has been rotated 502 to the right or to theleft to a degree that indicates that the active side 202, 204, 206 ofthe remote control 100 has changed 504 (e.g., the controlling device 100is sensed to have rotated past a predetermined, threshold angle) and,therefore, that pointer axis compensation is needed 506, the controllingdevice 100 will initiate appropriate processes or actions 508 necessaryto perform the indicated function, e.g., the controlling device 100functions to align movements of the controlling device relative to theA, B, and C axes of the controlling device to the X, Y, and Z axes ofthe target device to compensate for which side surface 202,204,206 ofthe controlling device 100 is now active. The target appliance is thenprovided with the compensated movement data that has been properlyaligned to the X, Y, and Z axes of the target appliance whereupon thetarget appliance can perform the commanded navigational functions asappropriate.

By way of further example, a sensor 318 incorporated into a controllingdevice 100 may be used to sense movement of the controlling device 100relative to the A, B, and C axis of the controlling device 100. Movementof the controlling device 100 relative to the A, B, and C axes can thenbe used to control 2D and/or 3D navigational functions of the targetappliance, such as television 102. In this regard, when the second sidesurface 204 of the controlling device is determined to be active,movement of the controlling device 100 can be used to control 2D and/or3D navigation within an the exemplary program guide 600 illustrated inFIG. 7 based on motions made by the controlling device 100. In thisexample, when the second side surface 204 is determined to be the activeside of the controlling device 100, movement of the controlling device100 relative to the A axis of the controlling device 100 will be used tocontrol navigational functions relative to the Z axis of the targetdevice, rotational movement of the controlling device 100 the B axis ofthe controlling device 100 will be used to control movement of thecontrolling device 100 relative to the X axis of the target device, androtational movement of the controlling device 100 relative to the C axisof the controlling device 100 will be used to control navigationalfunctions relative to the Y axis of the target device.

If it is then determined that the first side surface 202 of thecontrolling device 100 is now active as shown in FIG. 6, as a result ofa sensed turning or rotation of the controlling device 100, movement ofthe controlling device 100 relative to the C axis of the controllingdevice 100 will be used to control navigational functions relative tothe Z axis of the target device, rotational movement of the controllingdevice 100 relative to the B axis of the controlling device 100 will beused to control navigational functions relative to the Y axis of thetarget device, and rotational movement of the controlling device 100relative to the A axis of the controlling device 100 will be used tocontrol navigational functions relative to the X axis of the target asthe altered pointer axes of the controlling device have now beencompensated for.

If it is then determined that the third side surface 206 of thecontrolling device is the active side surface of the controlling device100, movement of the controlling device 100 can be used to control 2Dand/or 3D navigation within an the exemplary program guide 600illustrated in FIG. 8 based on motions made by the controlling device100. In this example, when the third side surface 206 is determined tobe the active side of the controlling device 100, movement of thecontrolling device 100 relative to the A axis of the controlling device100 will be used to control navigational functions relative to the Zaxis of the target device, rotational movement of the controlling device100 about the C axis of the controlling device 100 will be used tocontrol movement of the navigational functions relative to the Y axis ofthe target device, and rotational movement of the controlling device 100about the B axis of the controlling device 100 will be used to controlnavigational functions relative to the X axis of the target device.

While the above describes embodiments utilize a rotational movement ofthe controlling device 100 relative to an A, B, and/or C axis of thecontrolling device to control navigation relative to a corresponding oneof the X, Y, and Z axes of the target device, it will be appreciatedthat linear movements of the controlling device 100 (e.g., up and downmovements and/or side to side movements of the controlling device 100)can equally be sensed and used for the purpose of controllingnavigational functions of the target device while also using the axiscompensation techniques as described hereinabove. Furthermore to theextent that the A, B, and C axes of the controlling device 100 arecaused to be angularly offset relative to the X, Y, and Z axes of thetarget device, for example when the A, B, and C axes of the controllingdevice 100 are referenced to one side of the controlling device facinghorizontally upward, the movement data relative to the A, B, and C axesof the controlling device 100 can be provided with an angular offset asneeded for the purpose of aligning the A, B, and C axes of thecontrolling device 100 with the X, Y, and Z axes of the targetappliance.

While various concepts have been described in detail, it will beappreciated by those skilled in the art that various modifications andalternatives to those concepts could be developed in light of theoverall teachings of the disclosure. For example, while described in theexemplary context of a controlling device such as a remote control, itwill be appreciated that the principles and concepts described hereinmay be applied to any device that receives inputs and/or outputscommunications, such as, PDAs, portable computers, phones, gamecontrollers, portable gaming device, computer peripherals, and the like.Additionally, while accelerometer-derived orientation and motion sensingis used in the illustrative examples presented above, it will beappreciated that various other sensing technologies, for example withoutlimitation a gyroscopic device, infra-red or ultrasonic reflectionanalysis, etc. may be used in alternative embodiments without departingfrom the spirit of the invention. Further, while described in thecontext of functional modules and illustrated using block diagramformat, it is to be understood that, unless otherwise stated to thecontrary, one or more of the described functions and/or features may beintegrated in a single physical device and/or a software module, or oneor more functions and/or features may be implemented in separatephysical devices or software modules. It will also be appreciated that adetailed discussion of the actual implementation of each module is notnecessary for an enabling understanding of the invention. Rather, theactual implementation of such modules would be well within the routineskill of an engineer, given the disclosure herein of the attributes,functionality, and inter-relationship of the various functional modulesin the system. Therefore, a person skilled in the art, applying ordinaryskill, will be able to practice the invention set forth in the claimswithout undue experimentation. It will be additionally appreciated thatthe particular concepts disclosed are meant to be illustrative only andnot limiting as to the scope of the invention which is to be given thefull breadth of the appended claims and any equivalents thereof.

All documents cited within this disclosure are hereby incorporated byreference in their entirety.

What is claimed is:
 1. A method for providing axis orientationcompensation in a system in which movement of a controlling device isused to control navigational functions of a target appliance,comprising: receiving by the target appliance from the controllingdevice a navigational command wherein the navigational command comprisesdata indicative of a one of a plurality of sides of the controllingdevice that was determined by the controlling device to be an activeside of the controlling device and data indicative of a movement of thecontrolling device along a one of an A, B, or C axis of the controllingdevice; using the data in the received navigational command by thetarget appliance to determine whether the target appliance is to respondto the received navigational command by performing a navigationalfunction in a one of an X, Y, or Z axis of the target appliance; andperforming by the target appliance the navigational function in thedetermined one of the X, Y, or Z axis of the target appliance.
 2. Themethod as recited in claim 1, wherein the controlling device comprisesat least one orientation sensor and the method comprises using a signalgenerated by the at least one orientation sensor to determine which oneof the plurality of sides of the controlling device is the active sideof the controlling device.
 3. The method as recited in claim 2, whereinthe at least one orientation sensor comprises an accelerometer.
 4. Themethod as recited in claim 2, comprising using the signal generated bythe at least one orientation sensor to also track movements of thecontrolling device made relative to the A, B, or C axes of thecontrolling device.
 5. A method for providing axis orientationcompensation in a system in which movement of a controlling device isused to control navigational functions of a target appliance,comprising: in response to a movement of the controlling device along aone of an A, B, or C axis of the controlling device, transmitting fromthe controlling device to the target appliance a navigational command tocause the target appliance to perform a navigational function in a oneof an X, Y, or Z axis of the target appliance wherein the controllingdevice determines whether the target appliance is perform thenavigational function in the one of the X, Y, or Z axis of the targetappliance as a function of which one of a plurality of sides of thecontrolling device was determined by the controlling device to be anactive side of the controlling device and the one of the A, B, or C axisof the controlling device along which the controlling device was movedto cause the navigational signal to be sent to the target appliance. 6.The method as recited in claim 5, wherein the controlling devicecomprises at least one orientation sensor and the method comprises usinga signal generated by the at least one orientation sensor to determinewhich one of the plurality of sides of the controlling device is theactive side of the controlling device.
 7. The method as recited in claim6, wherein the at least one orientation sensor comprises anaccelerometer.
 8. The method as recited in claim 6, comprising using thesignal generated by the at least one orientation sensor to trackmovements of the controlling device made relative to the A, B, or C axesof the controlling device.